home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Utilities Experience
/
The Utilities Experience - Volume 1.iso
/
software
/
comms
/
html-heaven
/
arexx
/
html-golded.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1996-01-08
|
5KB
|
116 lines
/* HTML-Helper Arexx script for GoldEd
* Ver : 1.2 (7th January 1996)
* Copyright: Paul Kolenbrander (InterNet: paul@serena.iaehv.nl)
* Function : Pass on the HTML commands from HTML-Helper to GoldEd.
* Now it also detects if there is a block defined in
* GoldEd. If so, it'll split tag pairs and wrap them
* around that block. Thanks to Cletus Baker for giving me
* the basics on how to do this.
* Input : HTMLCMD - The HTML command to be inserted.
*/
OPTIONS RESULTS /* enable return codes */
PARSE ARG MYCMD HTMLCMD
HTMLCMD = SUBSTR(HTMLCMD,2, LENGTH(HTMLCMD)-1) /* strip leading space */
HTMLCMD = SUBSTR(HTMLCMD,2, LENGTH(HTMLCMD)-2) /* strip leading/trailing " */
posit=1 /* replace all '"' by '*"' */
NEWSTRING="" /* as GEd eats single '"'. */
max=LENGTH(HTMLCMD)
DO UNTIL posit = max
IF SUBSTR(HTMLCMD,posit,1) = '"' THEN
NEWSTRING = NEWSTRING || '*'
NEWSTRING = NEWSTRING || SUBSTR(HTMLCMD,posit,1)
posit=posit+1
END
NEWSTRING = NEWSTRING || SUBSTR(HTMLCMD,LENGTH(HTMLCMD),1)
HTMLCMD=NEWSTRING
HTMLCMD='"'||HTMLCMD||'"' /* Now enclose in "" again */
ADDRESS 'GOLDED.1'
'LOCK CURRENT' /* lock GUI, gain access */
OPTIONS FAILAT 6 /* ignore warnings */
SIGNAL ON SYNTAX /* ensure clean exit */
'FOLD ALL OPEN=TRUE' /* open all folds */
IF POS('><',HTMLCMD) ~= 0 THEN DO /* Is it a split command? */
/* If yes, then.... */
'QUERY BLOCK' /* Check if there's a block*/
IF (result = 2) THEN DO /* character block mode */
CMD2 = right(HTMLCMD,(LENGTH(HTMLCMD)-(LASTPOS('<',HTMLCMD))+1))
CMD1 = substr(HTMLCMD,1,(LENGTH(HTMLCMD)-LENGTH(CMD2)))
CMD1 = CMD1||'"' /* add a trailing " */
CMD2 = '"'||CMD2 /* add a leading " */
'GOTO BLAST' /* Goto end of Block */
'TEXT STAY T=' CMD2 /* Insert close at cursor. */
'GOTO BFIRST'
'TEXT STAY T=' CMD1 /* Insert open at cursor. */
'MARK HIDE'
END
ELSE DO
IF (result = 1) THEN DO /* Line block mode */
CMD2 = right(HTMLCMD,(LENGTH(HTMLCMD)-(LASTPOS('<',HTMLCMD))+1))
CMD1 = substr(HTMLCMD,1,(LENGTH(HTMLCMD)-LENGTH(CMD2)))
CMD1 = CMD1||'"' /* add a trailing " */
CMD2 = '"'||CMD2 /* add a leading " */
'QUERY BLOCKB' /* Get Block end line */
'GOTO LINE='result + 1 /* And add a line */
'GOTO COLUMN=1' /* goto first column */
'TEXT CR T=' CMD2 /* insert text and add CR */
'GOTO BFIRST' /* Goto block begin */
'TEXT CR T=' CMD1 /* Insert open at cursor. */
'MARK HIDE'
END
ELSE DO /* no block mode */
'TEXT T=' HTMLCMD /* insert at current pos. */
END
END
END
ELSE DO
'TEXT T=' HTMLCMD /* insert at current pos. */
END
IF MYCMD = 'SAVE' THEN DO
'SAVE ALL'
'QUERY PATH'
MYPAD = result
'QUERY FILE'
MYFILE = result
'UNLOCK' /* And unlock the GUI */
IF RIGHT(MYPAD,1) = ':' THEN DO
MYPAD = MYPAD||MYFILE
END
ELSE DO
MYPAD = MYPAD||'/'
MYPAD = MYPAD||MYFILE
END
IF OPEN('tempname', 'T:TempRexxFile', 'READ') ~= 1 THEN DO
OPEN('tempname','T:TempRexxFile','WRITE')
WRITELN('tempname',MYPAD)
CLOSE('tempname')
ADDRESS COMMAND 'rx S:HTMLVIEW.rexx '||MYPAD
END
ELSE DO
OLDFILE = READLN('tempname')
IF UPPER(OLDFILE) = UPPER(MYPAD) THEN DO
ADDRESS COMMAND 'rx S:HTMLVIEW.rexx'
END
ELSE DO
OPEN('tempname','T:TempRexxFile','WRITE')
WRITELN('tempname',MYPAD)
CLOSE('tempname')
ADDRESS COMMAND 'rx S:HTMLVIEW.rexx '||MYPAD
END
END
END
ELSE DO
'UNLOCK' /* And unlock the GUI */
END
EXIT